/**例子1**/
// let promise = new Promise(function(resolve, reject) {
//   console.log('Promise');
//   resolve();
// });

// promise.then(function() {
//   console.log('resolved');
// });





/**例子2**/
// setTimeout(function () {      //宏任务
//   console.log(1);
// });


// new Promise(function(resolve,reject){
//   console.log(2)    //同步任务
//   resolve(3);

// }).then(function(val){
//   console.log(val);   //微任务

//   new Promise((resolve, reject) => {
//       console.log(5)    //同步
//       resolve(7)
//   }).then(res => {
//       console.log(res);   //微任务
//   })

// })


// console.log(4);     //同步任务

// //2 4 3 5 7





/**例子3**/


// setTimeout(function () {
//   console.log(2);     //宏任务
// });

// new Promise(function (resolve, reject) {
//   console.log(3);      //同步
//   resolve();
//   console.log(4);     //同步  
// }).then(function () {
//   console.log(5);        //微任务 
// });

// console.log(8);    //同步  


// 3 4 8 5 2


/**例子4**/

// setTimeout(function () {
//   console.log(1);             //宏任务
// });

// new Promise(function (resolve, reject) {
//   console.log(2);           //同步
//   resolve(3);
// }).then(function (val) {

//     //微任务
//   console.log(val);     
//   new Promise((resolve, reject) => {
//     console.log(5);    
//     resolve(7);     
//   }).then((res) => {
//     console.log(res);           //微任务 
//   });

//   setTimeout(()=>{
//     console.log(9)
//   })

// });
// console.log(4);     //同步任务

// 2 4 3 5 7 1  9






setTimeout(() => {
  console.log(2);
  Promise.resolve().then(() => {
    console.log(3);
  });
  console.log(8);
});


new Promise((resolve, reject) => {
  console.log(4);  
  resolve(5);     
}).then((data) => {
  console.log(data);  
});


setTimeout(() => {  
  console.log(6);
});
console.log(7);     

// 4 7 5 2 8 3 6